﻿package plugin.bossChallenge.handler
{
    import cmd.*;
    import com.core.*;
    import flash.utils.*;
    import pluginfw.nio.*;
    import pluginfw.nio.imsg.*;

    public class BossChallengeHandler extends Object implements IGroupHandler
    {

        public function BossChallengeHandler()
        {
            return;
        }// end function

        public function dealSimpleMessage(param1:ISimpleMessage) : void
        {
            return;
        }// end function

        public function dealBufferMessage(param1:IBufferMessage) : void
        {
            var _loc_2:int = 0;
            var _loc_3:int = 0;
            var _loc_4:int = 0;
            var _loc_5:* = new Object();
            var _loc_6:* = new Input(null);
            var _loc_7:* = param1.getBody();
            param1.getBody().position = 0;
            _loc_6.setBytes(_loc_7);
            switch(param1.getCmd())
            {
                case CMDBossChallenge.InitYeWai:
                {
                    _loc_2 = _loc_6.readShort();
                    _loc_5.bossList = new Array();
                    _loc_4 = 0;
                    while (_loc_4 < _loc_2)
                    {
                        
                        _loc_3 = _loc_6.readByte();
                        if (_loc_3 != 0)
                        {
                            _loc_5.bossList[_loc_4] = new Object();
                            _loc_5.bossList[_loc_4].bossId = _loc_6.readVarInt(false);
                            _loc_5.bossList[_loc_4].state = _loc_6.readVarInt(false);
                            _loc_5.bossList[_loc_4].nextReliveTime = _loc_6.readVarInt(false);
                        }
                        _loc_4++;
                    }
                    ModelProxy.change("bossChallenge", "showWorldBoss", _loc_5.bossList);
                    break;
                }
                case CMDBossChallenge.InitPerson:
                {
                    _loc_2 = _loc_6.readShort();
                    _loc_5.bossList = new Array();
                    _loc_4 = 0;
                    while (_loc_4 < _loc_2)
                    {
                        
                        _loc_3 = _loc_6.readByte();
                        if (_loc_3 != 0)
                        {
                            _loc_5.bossList[_loc_4] = new Object();
                            _loc_5.bossList[_loc_4].bossId = _loc_6.readVarInt(false);
                            _loc_5.bossList[_loc_4].instanceEnterCount = _loc_6.readVarInt(false);
                        }
                        _loc_4++;
                    }
                    ModelProxy.change("bossChallenge", "showPersonBoss", _loc_5.bossList);
                    break;
                }
                case CMDBossChallenge.Init:
                {
                    _loc_5.mapid = _loc_6.readVarInt(false);
                    _loc_2 = _loc_6.readShort();
                    _loc_5.bossList = new Array();
                    _loc_4 = 0;
                    while (_loc_4 < _loc_2)
                    {
                        
                        _loc_3 = _loc_6.readByte();
                        if (_loc_3 != 0)
                        {
                            _loc_5.bossList[_loc_4] = new Object();
                            _loc_5.bossList[_loc_4].bossId = _loc_6.readVarInt(false);
                            _loc_5.bossList[_loc_4].state = _loc_6.readVarInt(false);
                            _loc_5.bossList[_loc_4].nextReliveTime = _loc_6.readVarInt(false);
                        }
                        _loc_4++;
                    }
                    ModelProxy.change("mainui", "bossdatas", _loc_5);
                    ModelProxy.change("zone", "zssdDatasChange", _loc_5);
                    break;
                }
                default:
                {
                    break;
                }
            }
            return;
        }// end function

        public function dealProxyMessage(param1:IProxyMessage) : void
        {
            return;
        }// end function

    }
}
